1. Field of the Invention
The present invention relates to the field of data processing systems. Specifically, the present invention relates to a method and apparatus for efficiently synchronizing information between a portable computer system and a host computer system.
2. Related Art
As the components required to build a computer system have reduced in size, new categories of computer systems have emerged. One of the new categories of computer systems is the “palmtop” computer system. A palmtop computer system is a computer that is small enough to be held in the hand of a user and can be “palm-sized.” Most palmtop computer systems are used to implement various Personal Information Management (PIM) applications such as an address book, a daily organizer and electronic notepads, to name a few.
Since palmtop computer systems are very small, full-sized keyboards are generally not efficient input devices. Palmtop computers using keyboards have keyboard devices that are so small that a user cannot touch-type. Furthermore, to use a keyboard device, a user must either place the palmtop computer system down onto a flat surface, so the user can type with both hands, or the user holds the palmtop computer system with two hands and types with thumbs only.
Instead of a keyboard device, some palmtop computers utilize a touch screen and display an image of a small keyboard thereon. When a particular button is pressed or tapped, a small keyboard image is displayed on the display screen. Instead of using a keyboard device or a displayed keyboard, many palmtop computers employ a pen and a digitizer pad as an input system. The pen and digitizer pad combination works well for palmtop computers because the arrangement allows a user to hold the palmtop computer system in one hand while writing with the pen onto the digitizer pad with the other hand. Most of these pen-based palmtop computer systems provide some type of handwriting recognition system whereby the user can write words and letters on the digitizer pad with a stylus.
In addition to using keyboards, virtual keyboards and the digitizer, it has also proven convenient to exchange data between a computer system and a palmtop computer using a communication interface, such as a serial or parallel input port. Alternatively, infrared (IR) or wireless radio frequency communication may be used for the interface. A number of programs today transfer data between palmtops and personal computer systems (PCs), but they are currently limited in functionality. For instance, some programs transfer all the information from the palmtop to the PC without regard for the prior content on the PC. These programs assume that changes to that particular data are only made on the palmtop, and that the changes made on the palmtop take precedence over any changes made on the PC. As a result, any independent updates made directly on the PC will be lost.
Other programs make inefficient use of the communication link between the two computer systems. Frequently, the user may wish to synchronize several applications, such as an appointment book, an address book, and an electronic notepad application. The same program is used to synchronize all applications, but the applications are synchronized serially. FIG. 1 illustrates the use of the communication link over time for three applications being synchronized serially. A, B, and C represent the time when the respective synchronizing program is using the communication link to synchronize application A, B, or C. Unfortunately, for a considerable portion of the time, the communication link is idle. For example, the communication link is idle when the synchronizing program is comparing records transferred from the palmtop with records on the host computer. This comparison process can be computationally intensive, and hence very time consuming. After the comparison phase is done, selected records are than transferred over the communication link. Also, the synchronizing program must wait for the palmtop to respond to its request for information—resulting in a latency period when the link is idle. Additionally, the host computer may have a relatively slow hard drive, causing idle time on the link while the synchronizing program waits for host data. Consequently, there are numerous reasons for the communication link to be idle for much of the time during synchronization.
As a consequence of the inefficient use of the communication link, the synchronization process can be expensive. For example, if the communication link is via a cellular link, the user is paying a high access fee even during the time the communication link is idle. Clearly it is undesirable to have an idle communication link whenever the user pays for connection time, whether the link is cellular or otherwise.
If the user has a palmtop connected to a host computer via a serial cable, connection fees are not a severe issue; however, the lengthy synchronization time is a problem. Palmtops have many application programs which need to be synchronized and will only find more applications in the future. Programs which synchronize one application at a time force the user to wait a substantial period of time for the synchronization of all of the application programs to complete. Inconvenient synchronization can lead to users not performing synchronization as much as they should, which is a very undesirable result.
Other systems, such as those described in U.S. Pat. No. 5,727,202, U.S. Pat. No. 5,832,489, U.S. Pat. No. 5,884,323 and U.S. Pat. No. 6,000,000 allow data synchronization between a portable computer system and a desktop computer system for the exchange and updating of data. However, like the above described systems, these synchronization systems are serial and they can be time consuming and can make inefficient use of the communication link.